/*
 * TreeArray.h
 *
 *  Created on: 2013-2-4
 *      Author: tangwu
 */

#ifndef TREEARRAY_H_
#define TREEARRAY_H_

#include "Rank.h"
class TreeArray: public Rank{
public:
	TreeArray(int _min_score, int _max_score, int _n, int _len);
	bool update(int src_score, int des_score);
	int query(int score);
	~TreeArray();
	static int lowb(int t);
	/*
	 * @brief 分数为i的人数增加v
	 */
	void add(int i, int v);

	/*
	 * @brief 请分数小于等于i的人的总数
	 */
	int sum(int i);
protected:
	/*
	 * 树状数组的_sum数组(_sum[i]的定义请参考树状数组的定义 http://baike.baidu.com/view/1420784.htm#2 )
	 */
	int* _sum;

	/*
	 * 分数数组,_score[i]表示分数为i的人有几个
	 */
	int* _score;

	/*
	 * 数组的长度
	 */
	int len;
};



#endif /* TREEARRAY_H_ */
